/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package uy.edu.ort.uruguayviajes.negocio.servicios.impl;

import javax.ejb.EJB;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.Stateful;
import uy.edu.or.uruguayviajes.negocio.servicios.UsuarioService;
import uy.edu.ort.comun.dominio.dto.*;
import uy.edu.ort.uruguayviajes.negocio.excepciones.UsuarioException;
import uy.edu.ort.uruguayviajes.dao.servicios.DaoServices;


/**
 *
 * @author dberriel
 */
@Stateful
public class UsuarioServiceBean implements UsuarioService {
    @EJB
    private DaoServices daoServiceBean;
    
    private List<ReservaDTO> reservas;
    private String usuario;

    @Override
    public void initialize(String user) throws UsuarioException {
        if (user == null) {
            throw new UsuarioException("Debe de estar logueado para realizar operaciones.");
        } else {
            usuario = user;
        }
        reservas = new ArrayList<ReservaDTO>();//Se debe cargar la lista de reservas del usuario
    }
    // Add business logic below. (Right-click in editor and choose
    // "Insert Code > Add Business Method")

    public boolean validarUsuario(String usuario, String password) throws UsuarioException{
        try{
            return true;
        }catch(Exception ex){
            throw new UsuarioException("mensaje");
        }
    }

    public UsuarioDTO obtenerUsuario(String nomUsuario) throws UsuarioException{
        try{
            return daoServiceBean.obtenerUsuarioDTO(nomUsuario);
        }catch(Exception ex){
            throw new UsuarioException("mensaje");
        }
    }
    
    public void agregarReserva(ReservaDTO reserva) throws UsuarioException{
        try{
            reservas.add(reserva);
        }
        catch(Exception ex){
            throw new UsuarioException("mensaje");
        }
    }
    
    public void registrarUsuario(UsuarioDTO usuario)throws UsuarioException{
        try{
           daoServiceBean.ingresarUsuario(usuario.getNombres(), usuario.getApellidos(),usuario.getSexo(), usuario.getfNacimiento(), 
                   usuario.getDireccion(), usuario.getTelefono(),usuario.getCodigoPostal(),usuario.getCiudad(),usuario.getEmail(),
                   usuario.getUsuario(), usuario.getPassword());
        }
        catch(Exception ex){
            throw new UsuarioException("mensaje");
        }
    }
    
    public List<ReservaDTO> getReservas(){
        return reservas;
    }
   
}
